One or more aspects relate, in general, to a global completion table, and in particular, to managing a global completion table in a multi-threaded computing environment.
A global completion table is used to track progress of instructions from dispatch through completion. Traditionally, the global completion table is managed as a circular queue, in which entries are used in order. When a group of instructions is dispatched, the group is assigned to a next sequential entry in the queue, and assigned an identifier referred to as a group tag (GTAG) or a global completion table identifier (GCT id).
The group tag is passed around as the instructions are executed. It is used to determine relative age between instructions, as well as to determine the entry in the global completion table in which to write information about the execution of the instructions.